Without limiting the general scope of the invention, its background is described in connection with computer graphics, as an example only.
In computer graphics systems, the low cost of dynamic random access memories (DRAM) has made it economical to provide a bit map or pixel map system memory. In such a bit map or pixel map memory, a color code is stored in a memory location corresponding to each pixel to be displayed. A video system is provided which recalls the color codes for each pixel and generates a raster scan video signal corresponding to the recalled color codes. Thus, the data stored in the memory determine the display by determining the color generated for each pixel (picture element) of the display.
The requirement for a natural looking display and the minimization of required memory are conflicting. In order to have a natural looking display, it is necessary to have a large number of available colors. This, in turn, necessitates a large number of bits for each pixel in order to specify the particular color desired from among a large number of possibilities. The provision of a large number of bits per pixel, however, requires a large amount of memory for storage. Since a number of bits must be provided for each pixel in the display, even a modest size display would therefore require a large memory. Thus, it is advantageous to provide some method to reduce the amount of memory needed to store the display while retaining the capability of choosing among a large number of colors.
The provision of a circuit called a color palette enables a compromise between these conflicting requirements. The color palette stores color data words which specify colors to be displayed in a form that is ready for digital-to-analog conversion directly from the color palette. Corresponding color codes having a limited number of bits are stored in the memory for each pixel have a limited number of bits, thereby reducing the memory requirements. The color codes are employed to select one of a number of color registers or palette locations. Thus, the color codes do not themselves define colors, but instead, identify preselected palette locations. These color registers or palette locations each store color data words which are longer than the color codes in the pixel map memory. The number of such color registers or palette locations provided in the color palette is equal to the number of selections provided by the color codes. For example, a 4-bit color code can be used to select 2.sup.4 or 16 palette locations. Significantly, the color data words can be redefined in the palette from frame to frame to provide many more colors in an ongoing sequence of frames than are present in any one frame. Significantly, the ability to redefine the color data words in the palette allow for the customization of colors on the display from one application to another.
Graphics processing systems may operate in either the big-endian or little-endian data formats. The big-endian and little-endian formats determine how data are interpreted as a function of the ordering of the words or bits making up a selected data structure. For example, the graphics processor may output a 32-bit word representing either one 32-bit, two 16-bit, four 8-bit, eight 4-bit, sixteen 2-bit or thirty-two 1-bit color code words (each color code word representing one pixel) to the color palette. Each color code word is normally assigned a designator, and for multiple bit color code words, each bit in a word is assigned a designator. Thus, if a 32-bit word from the frame buffer represents four 8-bit color code words to the palette, the 8-bit words may be designated B0-B3 and the corresponding 8 bits in each word designated D0-D7. In the little-endian format, the bit or word with the lowest designator represents the least significant bit or word in the data structure. In this example, bit DO would represent the least significant bit in each 8-bit word and word B0 would represent the least significant color code word in the 32-bit word output from the frame buffer. In the big-endian format, the bit or word with the lowest designator represents the most significant bit or word in the data structure. In this example, bit D0 would represent the most significant bit in each 8-bit word and word B0 would represent the most significant color code word in the 32-bit word received from the frame buffer.
Since the bit and word ordering of the big- and little-endian formats are essentially mirror images of each other, it is critical that both the graphics processor and the color palette operate in the same format when multiple bit words of pixel data are being output from the system frame buffer to the color palette. Specifically, the mapping of bits from memory to the display screen is performed in terms of the ordering of color code words received from the frame buffer. Further, in the normal operating mode the ordering of the bits in each color code word is critical to providing the proper address to the color palette look-up table. A color palette not operating in the same format as the processor will misinterpret the data from the frame buffer resulting in improper mapping to the display screen and/or improper addressing to the palette look-up table. It should be noted that these big/little-endian mode compatibility problems will normally not arise when pixel data is being transferred in only one pixel size (i.e. only in a preselected one of 1, 2, 4, 8, 16 or 32 bits for example). In this situation, the system and the associated palette can be appropriately wired to get to obtain compatibility, an approach which will not necessarily work when two or more pixel sizes are being supported by the same system.
In currently available color palettes that support more than one pixel size, only one format, big- or little-endian is typically selected for a particular palette design which limits the possible uses of that particular color palette to those compatible systems using the same format. Thus, two different color palette designs are now normally required to provide color palettes operable in systems using the two different formats. Simply put, the ability to insert a currently available color palette into any system, no matter which format, big- or little-endian, is lacking.
Due to the advantages of color palette devices, systems and methods, any improvement in their implementation is advantageous in computer graphics technology. Specifically, color palette devices, systems and methods operable in both those systems using the little-endian format and those systems using the big-endian would be particularly advantageous. Of particular advantage is the ability to build, test and sell a single color palette device operable in systems using either the big-endian or little-endian format in place of two separate color palettes, one for use in big-endian systems and one for use in little-endian systems.